Integrator egs - fnalism gramm - gramm as fn - rec types - type of gramm - type of g as f 1-3 - fn types (with fn) and passes types through rec alg - " - type(arg) - " - " - find fn - to r t: find f t,g,algs - find t of g... as f (if t of alg as f - data or alg) given f alg, find alg " data data " t t " g g f as g t of f as g t f (this is a new alg x done with preds)